package com.ecoolex.chinadutyfree.retailer.core.mapper;

import com.ecoolex.chinadutyfree.retailer.entity.TaxRate;
import com.ecoolex.chinadutyfree.retailer.entity.TaxRateExample;
import com.ecoolex.framework.common.annotation.Description;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.springframework.lang.NonNull;

public interface TaxRateMapper {
    long countByExample(TaxRateExample example);

    int deleteByExample(TaxRateExample example);

    int deleteByPrimaryKey(Integer taxRateId);

    int insert(TaxRate record);

    int insertSelective(@Param("record") TaxRate record, @Param("selective") TaxRate.Column ... selective);

    TaxRate selectOneByExample(TaxRateExample example);

    List<TaxRate> selectByExample(TaxRateExample example);

    TaxRate selectByPrimaryKey(Integer taxRateId);

    TaxRate selectByPrimaryKeyWithLogicalDelete(@Param("taxRateId") Integer taxRateId, @Param("andLogicalDeleted") boolean andLogicalDeleted);

    int updateByExampleSelective(@Param("record") TaxRate record, @Param("example") TaxRateExample example, @Param("selective") TaxRate.Column ... selective);

    int updateByExample(@Param("record") TaxRate record, @Param("example") TaxRateExample example);

    int updateByPrimaryKeySelective(@Param("record") TaxRate record, @Param("selective") TaxRate.Column ... selective);

    int updateByPrimaryKey(TaxRate record);

    int batchInsert(@Param("list") List<TaxRate> list);

    int batchInsertSelective(@Param("list") List<TaxRate> list, @Param("selective") TaxRate.Column ... selective);

    int logicalDeleteByExample(@Param("example") TaxRateExample example);

    int logicalDeleteByPrimaryKey(Integer taxRateId);
}